JSON & XML structures

JSON(JavaScript Object Notation)
JavaScript 객체 문법으로 구조화된 데이터를 표현하기 위한 문 기반 표준 포맷
웹 애플리케이션에서 데이터를 전송할 때, 일반적으로 사용함
(서버->클라이언트 or 클라이언트->서버)
test.json
{
"squadName": "Super heroe squad",
"homeTown": "Metro City",
"formed": 2016,
"secretBase": "Super tower",
"active": true,
"members": [
{
"name": "Molecule Man",
"age": 29,
"secretIdentity": "Dan Jukes",
"power": [
"Radiation resistance",
"Turning tiny",
"Radiation blast"
]
},
{
"name": "Madame Uppercut",
"age": 39,
"secretIdentity": "Jane Wilson",
"powers": [
"Million tonne punch",
"Damage resistance",
"Superhuman reflexes",
]
},
{
"name": "Eternal Flame",
"age": 1000000,
"secretIdentity": "Unknown",
"powers": [
"Immortality",
"Heat Immunity",
"Inferno",
"Teleportation",
"Interdimensional travel"
]
}
]
}
위의 JSON을 JavaScript 프로그램으로 로드하고,
superHeroes라는 이름의 변수에 파싱하면,
JavaScript에서 점/브라켓 표현법을 통해 객체 내 데이터에 접근할 수 있다.
superHeroes.homeTown
superHeroes['active'] // ., []
superHeroes['members'][1]['powers'][2]
XML(eXtensible Markup Language)
다목적 마크업 언어로 많은 종류의 데이터를 기술하는데 사용될 수 있다.

인터넷이 연결된 시스템끼리 데이터를 쉽게 주고 받을 수 있게 하여,
HTML의 한계를 극복할 목적으로 만들어짐
<?xml version="1.0"?>
<quiz>
<qanda seq="1">
<quesion>
Who was the forty-second president of the U.S.A.?
</quesion>
<answer>
William Jefferson Clinton
</answer>
</qanda>
<!--Note: We need to add more quesions later.-->
</quiz>
HTML이 데이터의 표현에 목적이 있다면,
XML은 데이터 교환을 위한 구조정의에 목적이 있다.

HTML과 XML 모두 마크업 언어(Markup Language)로
데이터를 저장하고 전달하기 위해 디자인된 언어이다.

HTML은 정해진 태그를 이용해서 표현한다면,
XML은 사용자가 태그를 정의해서 사용할 수 있다.
(XML은 사전 정의 태그가 존재하지 않음, no pre-defined tags)

HTML은 인터넷 웹 환경에서 작동되는 언어이지만, XML은 특정 환경에 구애 받지 않는다.

HTML이 데이터와 데이터 표현을 동시에 한다고 할 때,
XML은 데이터를 가지고 있을 뿐 표현은 하지 않는다.